/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.tms.module.userinfo.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.validation.annotation.Validated;

import java.time.LocalDateTime;

/**
 * 用户信息表实体类
 *
 * @author Blade
 * @since 2022-03-03
 */
@Data
@TableName("tm_user_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "UserInfo对象", description = "用户信息表")
@Validated
public class TMUserInfo extends TenantEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@ApiModelProperty(value = "主键")
	private Long id;
	/**
	 * 业务伙伴编码
	 */
	@ApiModelProperty(value = "业务伙伴编码")
	private String tmId;
	/**
	 * 名称
	 */
	@ExcelProperty("姓名")
	@ApiModelProperty(value = "名称")
	private String name;
	/**
	 * 地址-省份
	 */
	@ApiModelProperty(value = "地址-省份")
	private String addressProvince;
	/**
	 * 地址-市区
	 */
	@ApiModelProperty(value = "地址-市区")
	private String addressCity;
	/**
	 * 地址-街道
	 */
	@ApiModelProperty(value = "地址-街道")
	private String adddressStreet;
	/**
	 * 电话
	 */
	@ExcelProperty("联系电话")
	@ApiModelProperty(value = "电话")
	private String phone;
	/**
	 * 公司名称
	 */
	@ApiModelProperty(value = "公司名称")
	private String cpmpanyName;
	/**
	 * 法人姓名
	 */
	@ApiModelProperty(value = "法人姓名")
	private String legalPersonName;
	/**
	 * 道路运输证营运证号
	 */
	@ApiModelProperty(value = "道路运输证营运证号")
	private String certificateTransportNo;
	/**
	 * 道路运输证有效期-开始
	 */
	@ApiModelProperty(value = "道路运输证有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateTransportValidDateStart;
	/**
	 * 道路运输证有效期-结束
	 */
	@ApiModelProperty(value = "道路运输证有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateTransportValidDateEnd;
	/**
	 * 营运证有效期开始
	 */
	@ApiModelProperty(value = "营运证有效期开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateOperationValidDateStart;
	/**
	 * 营运证有效期-结束
	 */
	@ApiModelProperty(value = "营运证有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateOperationValidDateEnd;
	/**
	 * 法人身份证-正面
	 */
	@ApiModelProperty(value = "法人身份证-正面")
	private String legalPersonPicFront;
	/**
	 * 法人身份证-背面
	 */
	@ApiModelProperty(value = "法人身份证-背面")
	private String legalPersonPicBack;
	/**
	 * 营运证证书照片
	 */
	@ApiModelProperty(value = "营运证证书照片")
	private String certificateOperationPic;
	/**
	 * 道路运输证照片
	 */
	@ApiModelProperty(value = "道路运输证照片")
	private String certificateTransportPic;
	/**
	 * 从业资格证号
	 */
	@ApiModelProperty(value = "从业资格证号")
	@ExcelProperty("从业资格证号")
	private String certificateWorkNo;
	/**
	 * 驾驶证号
	 */
	@ApiModelProperty(value = "驾驶证号")
	@ExcelProperty("驾驶证号码")
	private String certificateDriverNo;
	/**
	 * 准驾车辆类型
	 */
	@ApiModelProperty(value = "准驾车辆类型")
	@ExcelProperty("准驾车型")
	private String canDriveCarType;
	/**
	 * 审核状态
	 */
	@ApiModelProperty(value = "审核状态")
	private String approvalStatus;
	/**
	 * 身份证有效期-开始
	 */
	@ExcelProperty("身份证有效期-开始")
	@ApiModelProperty(value = "身份证有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDateTime idCardValidStart;
	/**
	 * 身份证有效期-结束
	 */
	@ApiModelProperty(value = "身份证有效期-结束")
	@ExcelProperty("身份证有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDateTime idCardValidEnd;
	/**
	 * 驾驶证有效期-开始
	 */
	@ExcelProperty("驾驶证有效期-开始")
	@ApiModelProperty(value = "驾驶证有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDateTime certificateDriverValidStart;
	/**
	 * 驾驶证有效期-结束
	 */
	@ExcelProperty("驾驶证有效期-结束")
	@ApiModelProperty(value = "驾驶证有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat("yyyy-MM-dd")
	private LocalDateTime certificateDriverValidEnd;
	/**
	 * 备注
	 */
	@ExcelProperty("备注")
	@ApiModelProperty(value = "备注")
	private String remark;
	/**
	 * 身份证正面
	 */
	@ApiModelProperty(value = "身份证正面")
	private String idCardPicFront;
	/**
	 * 身份证背面
	 */
	@ApiModelProperty(value = "身份证背面")
	private String idCardPicBack;
	/**
	 * 驾驶证正页
	 */
	@ApiModelProperty(value = "驾驶证正页")
	private String certificateDriverPicFront;
	/**
	 * 驾驶证副页
	 */
	@ApiModelProperty(value = "驾驶证副页")
	private String certificateDriverPicBack;
	/**
	 * 从业资格证
	 */
	@ApiModelProperty(value = "从业资格证")
	private String certificateWorkPic;
	/**
	 * 法人身份证号
	 */
	@ApiModelProperty(value = "法人身份证号")
	private String legalPersonNo;

	/**
	 * 法人身份证号
	 */
	@ApiModelProperty(value = "用户类型")
	private String userType;
	/**
	 * 用户id
	 */
	@ApiModelProperty(value = "用户id")
	private Long parentId;
	/**
	 * 承运商组别
	 */
	@ApiModelProperty(value = "承运商组别")
	private String carrierGroup;
	/**
	 * 邮箱
	 */
	@ApiModelProperty(value = "邮箱")
	private String mailbox;
	/**
	 * 是否删除，改为物理删除
	 */
	private Integer isDeleted;
}
